Mainframes are computing systems used mainly by large businesses and organizations for executing mission and task-critical applications (such as bulk data processing) that are often essential to the core of the business or organization. These applications often provide a competitive advantage to the organization, and thus mainframes are designed for the purposes of longevity, fault tolerance, and durability.
In addition, mainframes also offer vastly increased computing performance relative to ordinary person computers. Compared to a personal computer such as a PC, mainframes will commonly have hundreds to thousands of times as much data storage, and the capability to access, manipulate, and perform operations on such data much faster. Mainframes are designed to handle very high volumes of input and output (I/O) and emphasize throughput computing. Traditionally, mainframe designs have included several subsidiary computers (called channels or peripheral processors) which manage the I/O devices, leaving the central processing unit (CPU) free to deal only with high-speed memory. In addition, typical mainframe applications are often used to perform tasks which are essential to the core of the business operating the mainframe.
In addition, nearly all conventional mainframes also have the ability to run (or host) multiple operating systems, and thereby operate not as a single computer but as a number of virtual machines. This is most commonly achieved through the use of multiple logical partitions. Each logical partition, commonly referred to as an “LPAR,” is a subset of a computing system's hardware resources that is virtualized as a separate computer. In this role, a single mainframe can replace dozens or even hundreds of smaller servers. As a general practice, mainframes often utilize the proprietary operating system of the mainframe's manufacturer, and conventional implementations may comprise a single mainframe operating numerous instances of the same operating system. Recent developments have enabled the combination of various, disparate operating systems operating in distributed logical partitions in the same mainframe.
Unfortunately, mainframes are typically very expensive to purchase and/or procure the services of. Moreover, mainframe operating systems and applications can also be very expensive to develop and/or license. Due to the relatively small number of mainframe manufacturers and software developers, mainframe consumers typically have few options beyond the mainframe manufacturer's proprietary operating system. Naturally, reliance on a single, proprietary operating system can be expensive and licensing fees for the proprietary operating system can contribute significantly to the cost of owning and operating a mainframe, as well as purchasing mainframe computing services. Moreover, these fees are almost certain to continue to grow for a mainframe consumer due to maintenance and upgrade fees.
In addition to software licensing fees, hardware costs also contribute significantly to the cost of owning and/or operating a sophisticated multi-platform computing device such as a mainframe. In particular, the cost of both owning and operating a mainframe computer may vary widely, depending on the particular hardware components used. A mainframe's specific configuration of storage space, memory, and processing capability are typically the most common factors in any variations of cost from mainframe to mainframe. In addition, a common practice is to equip some mainframes with special purpose processors which traditionally have a lower cost (both to procure and license) than general processing units. Unfortunately, these special purpose processors are typically designed to be strictly limited in applicability (e.g., usage) through the use of microcode. These limitations vary depending on the specific special purpose processor but can include, for example, restrictions on accessible operating systems and locally executing applications. As a result, usage of special purpose processors is limited to performing specific tasks, rather than general purpose processing.
An alternative to actual ownership of mainframes is to rent mainframe computing services from a mainframe service provider. In a typical arrangement, mainframe computing is rented to consumers either for a timed duration or, more commonly, on a set price for a given number of units of data processed, for example, by millions of instructions per second (“MIPs”) processed by the rented mainframe. However, a service purchasing arrangement with these providers (which can be the mainframe manufacturers themselves) can often be just as expensive over time, especially if large quantities of data processing are required over long periods of time.